// Generics
// 1.场景需要接受什么返回什么，可能是string,number...很多类型
// function echo(arg: any): any{
//   return arg
// }
// 做不到限制
// const ret: string = echo(123)
// 定义接口和类的时候不指定类型，只是在使用中指定类型
// 申明T占位符号
function echo(arg) {
    return arg;
}
var ret = echo(true);
var ret1 = echo("str");
var ret2 = echo(123);
// 2.需求传入多个参数，调换位置
// function swap(tuple){
//   return [tuple[1],tuple[0]]
// }
function swap(tuple) {
    return [tuple[1], tuple[0]];
}
var retArr = swap(["string", 1223]);
// 这样可以retArr[0]使用number类型属性
console.log(retArr[0].toString());
// 这样可以retArr[1]使用string类型属性
console.log(retArr[1].indexOf("i"));
